//
//  ASJStage.h
//  ASJ001
//
//  Created by zephyrhan on 11/13/11.
//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//


#import "cocos2d.h"

@class ASJActor;
@class ASJObject;
@class ASJGestureRecoginzer;


@interface ASJStage : NSObject
{
    NSString* stageName;
    ASJActor* theActor;
    ASJObject* firstMonster;
    NSMutableArray* monsters;
    
    CCSprite* ground;
    CCSprite* groundX;
    CCSprite* grass;
    CCSprite* grassX;
    CCSprite* mountain;
    CCSprite* mountainX;
    CCSprite* cloud;
    CCSprite* cloudX;
    CGSize winSize;
    CGPoint targetPosition;
    
    CCLayer* worldLayer;
    CCLayer* maskLayer;
    ASJGestureRecoginzer* gestureRecognizer;
    
    CGFloat stageDistance;
    
}

@property (nonatomic, retain) NSString* stageName;
@property (nonatomic, retain) ASJActor* theActor;
@property (nonatomic, retain) ASJObject* firstMonster;
@property (nonatomic, retain) NSMutableArray* monsters;

@property (nonatomic, retain) CCLayer* worldLayer;
@property (nonatomic, retain) CCLayer* maskLayer;
@property (nonatomic, retain) ASJGestureRecoginzer* gestureRecognizer;

@property (nonatomic, retain) CCSprite* ground;
@property (nonatomic, retain) CCSprite* groundX;
@property (nonatomic, retain) CCSprite* grass;
@property (nonatomic, retain) CCSprite* grassX;
@property (nonatomic, retain) CCSprite* mountain;
@property (nonatomic, retain) CCSprite* mountainX;
@property (nonatomic, retain) CCSprite* cloud;
@property (nonatomic, retain) CCSprite* cloudX;
@property CGSize winSize;
@property CGPoint targetPosition;
@property BOOL startAddMonster;

- (id)initWithStageName:(NSString*)name;
- (void)setupStageInLayer:(CCLayer*)layer;

- (void)start;
- (void)stop;

- (void)backgroundMove;
- (void)gameStep;
- (void)birthMonster;

- (void)stopGestureRecognize;
- (void)startGestureRecognize;

@end
